package br.com.dsa.sistemasalon.marca;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;

public class MarcaDAOHibernate implements MarcaDAO {

	Session sessao;
	
	public Session getSessao() {
		return sessao;
	}

	public void setSessao(Session sessao) {
		this.sessao = sessao;
	}

	@Override
	public void salvar(Marca marca) {
		this.sessao.save(marca);
	}

	@Override
	public void editar(Marca marca) {
		this.sessao.update(marca);		
	}

	@Override
	public void excluir(Marca marca) {
		this.sessao.delete(marca);		
	}

	@Override
	public Marca buscarNome(String nome) {
		Query consultaNome = this.sessao.createQuery("from Marca m from m.marca like :marcaBusca");
		consultaNome.setString("marcaBusac", "%"+nome+"%");
		return (Marca) consultaNome.uniqueResult();		
	}

	@Override
	public Marca buscarID(Integer id) {
		return (Marca) this.sessao.get(Marca.class, id);
				
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<Marca> listar() {
		Criteria listaMarcas = this.sessao.createCriteria(Marca.class);
		return listaMarcas.list();
	}

	


}
